#if !defined(ximera_system_appsettings_hpp)
#define ximera_system_appsettings_hpp

// -----------------------------------------------------------

#include <ximera/types.hpp>
#include <map>

namespace ximera { namespace system
{
    class XIMERA_API AppSettings
    {
    public:
        AppSettings();
        AppSettings(char const* argv, int argc);

        void clear();
        void parse(char const* argv, int argc);
        //void parse(XmlNode* node);

        bool contains(String const& name) const;
        
        String const& value(String const& name) const;
        String& value(String const& name);
        void value(String const& name, String const& value);

        String const& operator[](String const& name) const;
        String& operator[](String const& name);

    private:
        typedef std::map<String, String> ValueMap;
        ValueMap _values;
    };
}}

// -----------------------------------------------------------

#endif